perm filename FRMBNF.BLI[AI,LCS] blob sn#812685 filedate 1983-01-17 generic text, type T, neo UTF8
! ;THE MODIFIED BNF SYNTAX DESCRIBED IN TERMS OF ITSELF .
! 
! BNFDEFINITION      = METASYMBOL "="  BNFCOMPONENT  [ COMMENT ] "." .
! 
! BNFCOMPONENT       = ( TERMINAL l
!                      METASYMBOL l
!                      OR l
!                      AND l
!                      OPTION l
!                      LIST l
!                      REPEAT l
!                      ACTION ) .
! 
! TERMINAL           = """ *ASCIICHARACTER """ ;TERMINAL CHARACTER STRING .
! 
! METASYMBOL         = [ *LETTER  "-" ] *LETTER  ;AN ELEMENT
!                      OF THE SYNTAX DEFINED BY THE SYNTAX OR BY A LEXICAL
!                      PROCESS .
! 
! OR                 = "(" BNFCOMPONENT *[ "l" BNFCOMPONENT ] ")" 
!                      ;ONLY ONE OF THE BNFCOMPONENTS IS REQUIRED .
! 
! AND                = BNFCOMPONENT *[ BNFCOMPONENT ] ;ALL OF THE
!                      BNFCOMPONENTS ARE REQUIRED .
! 
! OPTION             = "[" BNFCOMPONENT "]" ;USE OF THE BNFCOMPONENT IS
!                      OPTIONAL .
! 
! LIST               = "+" BNFCOMPONENT ;BNFCOMPONENTS SEPERATED BY
!                      COMMAS .
! 
! REPEAT             = "*" BNFCOMPONENT ;BNFCOMPONENTS NOT SEPERATED BY
!                      COMMAS .
! 
! ACTION             = "%" ACTIONNAME "%" ;ACTION TO BE PERFORMED WHEN ENCOUNTERED .
! 
! COMMENT            = ";" *ASCIICHARACTER .
! 
! ;*****************************************************************************************************************
! 
! ;CHECKS THAT THE FORMAT STATEMENT CONFORMS TO THE SYNTAX WHICH FOLLOWS.
! 
! FORMATSPEC        = LPAREN  [ FDGROUP ] RPAREN LINEND .
! 
! FDGROUP           = +( FIELDDESCRIPTOR [ *SLASH ] ) .
! 
! FIELDDESCRIPTOR   = ( ( PLUS l MINUS ) CONST PCHAR [ [ CONST ] TWODESCRIPTOR ] l
!                     CONST ( PCHAR [ [ CONST ] TWODESCRIPTOR ] l
!                     TWODESCRIPTOR l ONEDESCRIPTOR l XCHAR l LPAREN  FDGROUP RPAREN )  l
!                     TWODESCRIPTOR l ONEDESCRIPTOR l TCHAR [ LCHAR l RCHAR ] CONST l
!                     SCHAR [ SCHAR l PCHAR ] l BCHAR ( NCHAR l ZCHAR ) l
!                     DOLLAR l SLASH l COLON l
!                     LITSTRING l XCHAR l QCHAR l LPAREN  FDGROUP RPAREN ) .
! 
! TWODESCRIPTOR     = ( ( ECHAR l DCHAR l GCHAR ) [ CONST [ PERIOD CONST ] [ ECHAR CONST ] ] l 
!                     ( FCHAR l ICHAR l OCHAR l ZCHAR ) [ CONST [ PERIOD CONST ] ] ) .
! 
! ONEDESCRIPTOR     = ( LCHAR l ACHAR l RCHAR ) [ CONST ] .
! 
! 

!THE FOLLOWING TABLES WERE PRODUCED BY THE BLISS MODULE "BUILD.BLI"

BIND

VECTOR	METANAME= IF NOT LEFTBUILD THEN 0 ELSE PLIT(
%1%	PLIT'FORMATSPEC',
%2%	PLIT'LPAREN',
%3%	PLIT'FDGROUP',
%4%	PLIT'RPAREN',
%5%	PLIT'LINEND',
%6%	PLIT'FIELDDESCRIPTOR',
%7%	PLIT'SLASH',
%8%	PLIT'PLUS',
%9%	PLIT'MINUS',
%10%	PLIT'CONST',
%11%	PLIT'PCHAR',
%12%	PLIT'TWODESCRIPTOR',
%13%	PLIT'ONEDESCRIPTOR',
%14%	PLIT'XCHAR',
%15%	PLIT'TCHAR',
%16%	PLIT'LCHAR',
%17%	PLIT'RCHAR',
%18%	PLIT'SCHAR',
%19%	PLIT'BCHAR',
%20%	PLIT'NCHAR',
%21%	PLIT'ZCHAR',
%22%	PLIT'DOLLAR',
%23%	PLIT'COLON',
%24%	PLIT'LITSTRING',
%25%	PLIT'QCHAR',
%26%	PLIT'ECHAR',
%27%	PLIT'DCHAR',
%28%	PLIT'GCHAR',
%29%	PLIT'PERIOD',
%30%	PLIT'FCHAR',
%31%	PLIT'ICHAR',
%32%	PLIT'OCHAR',
%33%	PLIT'ACHAR')-1;

BIND	VECTOR ACTIONCASE=PLIT(
0 ),
	VECTOR	ACTIONNAME = IF NOT LEFTBUILD THEN 0 ELSE  PLIT(
0 );

MACRO	LLSIZE=106$;

BIND	BNFTBL= PLIT(	!106 ENTRIES
	!TYPE		SUB		NUMBER
	ALL↑24+		3↑12+	3,	!1
	META↑24+	7↑12+	3,	!FDGROUP
	LEXEME↑24+	LPAREN↑12+	2,	!3
	OPTION↑24+	2↑12+	0,	!4
	LEXEME↑24+	RPAREN↑12+	4,	!5
	LEXEME↑24+	LINEND↑12+	5,	!6
	LIST↑24+	12↑12+	1,	!7
	LEXEME↑24+	SLASH↑12+	7,	!8
	REPEAT↑24+	8↑12+	1,	!9
	META↑24+	13↑12+	6,	!FIELDDESCRIPTOR
	OPTION↑24+	9↑12+	0,	!11
	ALL↑24+		10↑12+	1,	!12
	ONE↑24+		56↑12+	13,	!13
	LEXEME↑24+	PLUS↑12+	8,	!14
	LEXEME↑24+	MINUS↑12+	9,	!15
	LEXEME↑24+	CONST↑12+	10,	!16
	OPTION↑24+	16↑12+	0,	!17
	META↑24+	70↑12+	12,	!TWODESCRIPTOR
	ALL↑24+		17↑12+	1,	!19
	ONE↑24+		14↑12+	1,	!20
	LEXEME↑24+	CONST↑12+	10,	!21
	LEXEME↑24+	PCHAR↑12+	11,	!22
	OPTION↑24+	19↑12+	0,	!23
	LEXEME↑24+	CONST↑12+	10,	!24
	OPTION↑24+	24↑12+	0,	!25
	META↑24+	70↑12+	12,	!TWODESCRIPTOR
	ALL↑24+		25↑12+	1,	!27
	LEXEME↑24+	PCHAR↑12+	11,	!28
	OPTION↑24+	27↑12+	0,	!29
	LEXEME↑24+	LPAREN↑12+	2,	!30
	META↑24+	7↑12+	3,	!FDGROUP
	LEXEME↑24+	RPAREN↑12+	4,	!32
	ALL↑24+		28↑12+	1,	!33
	META↑24+	70↑12+	12,	!TWODESCRIPTOR
	META↑24+	100↑12+	13,	!ONEDESCRIPTOR
	LEXEME↑24+	XCHAR↑12+	14,	!36
	ALL↑24+		30↑12+	2,	!37
	LEXEME↑24+	CONST↑12+	10,	!38
	ONE↑24+		33↑12+	4,	!39
	LEXEME↑24+	LCHAR↑12+	16,	!40
	LEXEME↑24+	RCHAR↑12+	17,	!41
	LEXEME↑24+	TCHAR↑12+	15,	!42
	OPTION↑24+	40↑12+	1,	!43
	LEXEME↑24+	CONST↑12+	10,	!44
	LEXEME↑24+	SCHAR↑12+	18,	!45
	LEXEME↑24+	PCHAR↑12+	11,	!46
	LEXEME↑24+	SCHAR↑12+	18,	!47
	OPTION↑24+	45↑12+	1,	!48
	LEXEME↑24+	NCHAR↑12+	20,	!49
	LEXEME↑24+	ZCHAR↑12+	21,	!50
	LEXEME↑24+	BCHAR↑12+	19,	!51
	ONE↑24+		49↑12+	1,	!52
	LEXEME↑24+	LPAREN↑12+	2,	!53
	META↑24+	7↑12+	3,	!FDGROUP
	LEXEME↑24+	RPAREN↑12+	4,	!55
	ALL↑24+		20↑12+	3,	!56
	ALL↑24+		38↑12+	1,	!57
	META↑24+	70↑12+	12,	!TWODESCRIPTOR
	META↑24+	100↑12+	13,	!ONEDESCRIPTOR
	ALL↑24+		42↑12+	2,	!60
	ALL↑24+		47↑12+	1,	!61
	ALL↑24+		51↑12+	1,	!62
	LEXEME↑24+	DOLLAR↑12+	22,	!63
	LEXEME↑24+	SLASH↑12+	7,	!64
	LEXEME↑24+	COLON↑12+	23,	!65
	LEXEME↑24+	LITSTRING↑12+	24,	!66
	LEXEME↑24+	XCHAR↑12+	14,	!67
	LEXEME↑24+	QCHAR↑12+	25,	!68
	ALL↑24+		53↑12+	2,	!69
	ONE↑24+		98↑12+	1,	!70
	LEXEME↑24+	ECHAR↑12+	26,	!71
	LEXEME↑24+	DCHAR↑12+	27,	!72
	LEXEME↑24+	GCHAR↑12+	28,	!73
	LEXEME↑24+	PERIOD↑12+	29,	!74
	LEXEME↑24+	CONST↑12+	10,	!75
	ALL↑24+		74↑12+	1,	!76
	LEXEME↑24+	ECHAR↑12+	26,	!77
	LEXEME↑24+	CONST↑12+	10,	!78
	ALL↑24+		77↑12+	1,	!79
	LEXEME↑24+	CONST↑12+	10,	!80
	OPTION↑24+	76↑12+	0,	!81
	OPTION↑24+	79↑12+	0,	!82
	ALL↑24+		80↑12+	2,	!83
	ONE↑24+		71↑12+	2,	!84
	OPTION↑24+	83↑12+	0,	!85
	LEXEME↑24+	FCHAR↑12+	30,	!86
	LEXEME↑24+	ICHAR↑12+	31,	!87
	LEXEME↑24+	OCHAR↑12+	32,	!88
	LEXEME↑24+	ZCHAR↑12+	21,	!89
	LEXEME↑24+	PERIOD↑12+	29,	!90
	LEXEME↑24+	CONST↑12+	10,	!91
	ALL↑24+		90↑12+	1,	!92
	LEXEME↑24+	CONST↑12+	10,	!93
	OPTION↑24+	92↑12+	0,	!94
	ALL↑24+		93↑12+	1,	!95
	ONE↑24+		86↑12+	3,	!96
	OPTION↑24+	95↑12+	0,	!97
	ALL↑24+		84↑12+	1,	!98
	ALL↑24+		96↑12+	1,	!99
	ALL↑24+		105↑12+	1,	!100
	LEXEME↑24+	LCHAR↑12+	16,	!101
	LEXEME↑24+	ACHAR↑12+	33,	!102
	LEXEME↑24+	RCHAR↑12+	17,	!103
	LEXEME↑24+	CONST↑12+	10,	!104
	ONE↑24+		101↑12+	2,	!105
	OPTION↑24+	104↑12+	0,	!106
	0)-1;